package cn.abcsys.cloud.devops.runtime.service;

import com.alibaba.fastjson.JSONObject;

import cn.abcsys.cloud.devops.runtime.bean.GridBean;
import cn.abcsys.cloud.devops.runtime.bean.Result;
import cn.abcsys.cloud.devops.runtime.entity.Host;
import cn.abcsys.cloud.devops.runtime.model.HostModel;
/**
 * 
 * @author mayunhao
 * @date 2017-06-15
 */
public interface HostService {
	/**
	 * 主机数据信息入库
	 * @param host
	 * @return
	 */
	public Result createHost(Host host);
	/**
	 * 更新主机信息
	 * @param host
	 * @return
	 */
	public Result updateHost(Host host);
	/**
	 * 删除主机
	 * @param hostId
	 * @return
	 */
	public Result deleteHost(Integer hostId);
	/**
	 * 获取主机详情
	 * @param hostId
	 * @return
	 */
	public Result getHostDetail(Integer hostId);
	/**
	 * 批量获取主机
	 * @param hostModel
	 * @return
	 */
	public GridBean getHostList(HostModel hostModel);
	/**
	* @Title: addToCluster 
	* @Description: 主机加到集群
	* @param @param hostId
	* @param @param clusterId
	* @param @return    设定文件 
	* @return Result    返回类型 
	* @throws
	 */
	public Result addToCluster(String hostId, Integer clusterId, Integer userId);
	/**
	 * 
	* @Title: removeFromCluster 
	* @Description: 主机从集群中移除 
	* @param @param hostId
	* @param @param clusterId
	* @param @return    设定文件 
	* @return Result    返回类型 
	* @throws
	 */
	public Result removeFromCluster(String hostId, Integer clusterId,Integer userId);
	/**
	* @Title: unUsedHost 
	* @Description: 未使用的主机
	* @param @param host
	* @param @return    设定文件 
	* @return Result    返回类型 
	* @throws
	 */
	public Result unUsedHost(Host host);
	/**
	* @Title: clusterHosts 
	* @Description: 集群主机 
	* @param @param host
	* @param @return    设定文件 
	* @return Result    返回类型 
	* @throws
	 */
	public Result clusterHosts(Host host);
	
	public JSONObject hostBoard();
}
